//
//  UserModel.swift
//  GLUZSwift
//
//  Created by xyanl on 2025/3/14.
//  Copyright © 2025 考拉🐨. All rights reserved.
//

import UIKit
import RealmSwift
import HandyJSON

class UserModel: Object, HandyJSON {
    /// 用户id
    @objc dynamic var id: Int = 0
    @objc dynamic var username: String = ""
    @objc dynamic var usernameRu: String = ""
    @objc private var username_ru: String = "" {
        willSet { usernameRu = newValue }
    }
    @objc dynamic var avatar: String = ""
    // 0: 中国，1：俄罗斯，2-9
    @objc dynamic var country: Int = 0
    // 身份 类型 （- 外部不使用，使用下面的枚举, 存储的时候存 type）
    @objc dynamic var type: Int = 0
    // 身份类型
    var identityType: IdentityType {
        IdentityType(rawValue: type) ?? .supplier
    }
    
    /// 积分数量
    @objc dynamic var score: Int = 0
    /// 店铺 id
    @objc dynamic var bid: Int = 0
    
    /// 设置主键
    override class func primaryKey() -> String? {
        "id"
    }
    required override init() {}
    
    func didFinishMapping() { }
    
    func mapping(mapper: HelpingMapper) {
        mapper <<< [
            type <-- ["identity_type", "type"]
        ]
    }
}

extension UserModel {
    
    /// 获取本地存储的用户信息
    /// - Parameter id: 用户 id
    /// - Returns: 用户信息
    static func fetchUser(_ id: Int) -> UserModel? {
        RealmTools.find(UserModel.self, key: "id", value: String(id))?.first as? UserModel
    }
    
    /// 保存用户个人信息
    func saveUser() {
        RealmTools.add(self, update: .modified)
        xLog("保存用户个人信息")
    }
    
}
